package tdq.dependencies

object Versions {
    const val timberVersion = "5.0.1"
    const val compose_version = "1.1.1"
    const val kotlin_version = "1.5.31"
    const val hiltVersion = "2.38.1"
    const val hiltCompilerVersion = "1.0.0"
    const val hiltComposeVersion = "1.0.0-alpha03"
    const val retrofitVersion = "2.9.0"
    const val gsonVersion = "2.8.6"
    const val datastoreVersion = "1.0.0-rc02"
    const val accompanistVersion = "0.18.0"
    const val coilVersion = "0.15.0"
    const val lifecycleRuntimeKtxVersion = "2.3.1"
    const val activityComposeVersion = "1.3.1"
    const val coreKtxVersion = "1.7.0"
    const val junitVersion = "4.13.2"
    const val extJunitVersion = "1.1.3"
    const val espressoCoreVersion = "3.4.0"
    const val roomVersion = "2.2.5"
    const val fragmentVersion = "1.3.5"
    const val activityVersion = "1.2.3"
    const val okhttpLogVersion = "4.9.1"
    const val recyclerviewAdapterVersion = "3.0.4"
    const val calendarViewVersion = "3.6.9"
    const val pickerViewVersion = "4.1.3"
    const val wheelViewVersion = "4.1.0"
    const val glideVersion = "4.7.1"
    const val aMap = "latest.integration"
    const val luBan = "1.1.8"
    const val photoView = "2.3.0"
    const val pictureselector = "v3.10.2"
}

object BuildDepends {
    const val compileSdkVersion = 32
    const val minSdkVersion = 21
    const val targetSdkVersion = 32
    const val versionCode = 1
    const val versionName = "1.0"
}

object Depends {

    //AndroidX
    const val compose_ui = "androidx.compose.ui:ui:${Versions.compose_version}"
    const val compose_material = "androidx.compose.material:material:${Versions.compose_version}"
    const val compose_ui_tooling_preview =
        "androidx.compose.ui:ui-tooling-preview:${Versions.compose_version}"
    const val compose_ui_test_junit4 =
        "androidx.compose.ui:ui-test-junit4:${Versions.compose_version}"
    const val compose_ui_tooling = "androidx.compose.ui:ui-tooling:${Versions.compose_version}"

    const val lifecycle_runtime_ktx =
        "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycleRuntimeKtxVersion}"
    const val activity_compose =
        "androidx.activity:activity-compose:${Versions.activityComposeVersion}"
    const val core_ktx = "androidx.core:core-ktx:${Versions.coreKtxVersion}"

    // ui-ktx
    const val fragmentKtx = "androidx.fragment:fragment-ktx:${Versions.fragmentVersion}"
    const val activityKtx = "androidx.activity:activity-ktx:${Versions.activityVersion}"

    // Room
    const val room_runtime = "androidx.room:room-runtime:${Versions.roomVersion}"
    const val compiler = "androidx.room:room-compiler:${Versions.roomVersion}"
    const val ktx = "androidx.room:room-ktx:${Versions.roomVersion}"

    // BaseRecyclerViewAdapterHelper
    const val recyclerView_adapter =
        "com.github.CymChad:BaseRecyclerViewAdapterHelper:${Versions.recyclerviewAdapterVersion}"

    const val junit = "junit:junit:${Versions.junitVersion}"
    const val ext_junit = "androidx.test.ext:junit:${Versions.extJunitVersion}"
    const val espresso_core = "androidx.test.espresso:espresso-core:${Versions.espressoCoreVersion}"

    // date
    const val calendarView = "com.haibin:calendarview:${Versions.calendarViewVersion}"
    const val pickerView = "com.contrarywind:Android-PickerView:${Versions.pickerViewVersion}"
    const val wheelView = "com.contrarywind:wheelview:${Versions.wheelViewVersion}"

    //hilt inject framework
    const val hilt_android = "com.google.dagger:hilt-android:${Versions.hiltVersion}"
    const val dagger_hilt_compiler = "com.google.dagger:hilt-compiler:${Versions.hiltVersion}"
    const val hilt_navigation_compose =
        "androidx.hilt:hilt-navigation-compose:${Versions.hiltComposeVersion}"
    const val hilt_lifecycle_viewModel =
        "androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hiltComposeVersion}"
    const val hilt_compiler = "androidx.hilt:hilt-compiler:${Versions.hiltCompilerVersion}"

    // glide
    const val glide_plugin = "com.github.bumptech.glide:glide:${Versions.glideVersion}"

    //http request
    const val retrofit2_converter_gson =
        "com.squareup.retrofit2:converter-gson:${Versions.retrofitVersion}"
    const val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofitVersion}"
    const val gson = "com.google.code.gson:gson:${Versions.gsonVersion}"
    const val log = "com.squareup.okhttp3:logging-interceptor:${Versions.okhttpLogVersion}"

    //数据保存，用于cookie持久化
    const val datastore_preferences =
        "androidx.datastore:datastore-preferences:${Versions.datastoreVersion}"
    const val datastore_core = "androidx.datastore:datastore-core:${Versions.datastoreVersion}"

    //系统ui控制器
    const val accompanist_system_ui_controller =
        "com.google.accompanist:accompanist-systemuicontroller:${Versions.accompanistVersion}"

    //accompanist辅助插件
    const val accompanist_insets =
        "com.google.accompanist:accompanist-insets:${Versions.accompanistVersion}"
    const val accompanist_coil = "com.google.accompanist:accompanist-coil:${Versions.coilVersion}"

    //日志打印
    const val timber = "com.jakewharton.timber:timber:${Versions.timberVersion}"

    // 高德
    const val aMap2d = "com.amap.api:map2d:${Versions.aMap}"

    //3D地图so及jar
    const val aMap3d = "com.amap.api:3dmap:${Versions.aMap}"

    //定位功能
    const val locationMap = "com.amap.api:location:${Versions.aMap}"

    //搜索功能
    const val searchMap = "com.amap.api:search:${Versions.aMap}"

    //导航功能
    const val aMap3dNavi = "com.amap.api:navi-3dmap:${Versions.aMap}"

    // luban压缩
    const val luBan = "top.zibin:Luban:${Versions.luBan}"

    // photoView
    const val photoView = "com.github.chrisbanes:PhotoView:${Versions.photoView}"

    // PictureSelector 基础 (必须)
    const val pictureSelector = "io.github.lucksiege:pictureselector:${Versions.pictureselector}"
    // 图片压缩 (按需引入)
    const val pictureCompress = "io.github.lucksiege:compress:${Versions.pictureselector}"
    // 图片裁剪 (按需引入)
    const val pictureUcrop = "io.github.lucksiege:ucrop:${Versions.pictureselector}"
    // 自定义相机 (按需引入)
    const val pictureCamerax = "io.github.lucksiege:camerax:${Versions.pictureselector}"
}
